package com.locus.locus.server.dados;

import javax.jdo.PersistenceManager;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.google.appengine.api.datastore.Key;
import com.locus.locus.client.dados.LocalizacaoWrapper;

@PersistenceCapable
public class Localizacao implements Wrappable<LocalizacaoWrapper> {

	@PrimaryKey
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
	private Key key;
	@Persistent
	private Key estabelecimento;
	@Persistent
	private double latitude;
	@Persistent
	private double longitude;
	@Persistent
	private String descricao;
	
	public Localizacao() {	}
	
	public Localizacao(LocalizacaoWrapper localizacao) {
		this.latitude = localizacao.getLatitude();
		this.longitude = localizacao.getLongitude();
		this.descricao = localizacao.getDescricao();
	}

	public Key getKey() {
		return key;
	}
	public void setKey(Key key) {
		this.key = key;
	}
	public Key getEstabelecimento() {
		return estabelecimento;
	}
	public void setEstabelecimento(Key estabelecimento) {
		this.estabelecimento = estabelecimento;
	}
	public double getLatitude() {
		return latitude;
	}
	public void setLatitude(double latitude) {
		this.latitude = latitude;
	}
	public double getLongitude() {
		return longitude;
	}
	public void setLongitude(double longitude) {
		this.longitude = longitude;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	@Override
	public void deserializarRelacionamentos(PersistenceManager pm) {	}

	@Override
	public LocalizacaoWrapper gerarWrapper() {
		final LocalizacaoWrapper localizacao = new LocalizacaoWrapper();
		
		localizacao.setLatitude(this.latitude);
		localizacao.setLongitude(this.longitude);
		localizacao.setDescricao(this.descricao);
		
		return localizacao;
	}

}
